Programmable logical devices (PLDs), for example, field-programmable gate arrays (FPGAs), are a well-known type of programmable IC that can be programmed to implement user-defined logic circuits. There is a demand for PLDs to perform ever more complex tasks, such as the multiplication of complex numbers. To efficiently multiply complex numbers, dedicated resources for handling complex numbers could be provided on a PLD. However, conventional ways to multiply complex numbers may not make efficient use of FPGA resources, and may consume more valuable interconnect resources and FPGA real estate than is desirable.
Accordingly, it would be desirable and useful to provide an improved way of multiplying complex numbers.